from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
import os
import platform


class Application(Flask):
    def __init__(self, import_name, template_folder=None, root_path=None):
        super(Application, self).__init__(
            import_name,
            template_folder=template_folder,
            root_path=root_path,
            static_folder=None
        )
        self.config.from_pyfile('config/base_setting.py')  # 不管本地还是线上都需要的配置
        # 第一种加载配置的方式：这里适合linux，mac系统等，一般在windows系统中不适合使用
        # if "ops_config" in os.environ: #ops_config选择 local或者production
        #     self.config.from_pyfile( 'config/%s_setting.py'%os.environ['ops_config'] )
        # else:  # 默认运行用线下模型
        #     self.config.from_pyfile('config/local_setting.py')
        # 第二种加载配置的方式，这里是和windows，linux
        if platform.system().lower() == "windows":
            self.config.from_pyfile('config/local_setting.py')  # 用于开发
        elif platform.system().lower() == "linux":
            self.config.from_pyfile('config/production_setting.py')  # 用于测试
        else:
            self.config.from_pyfile('config/base_setting.py')
        db.init_app(self)


db = SQLAlchemy()

import os

template_folder = os.getcwd() + "/web/templates/"
print('template_folder:', template_folder)
app = Application(__name__, template_folder=template_folder, root_path=os.getcwd())
manager = Manager(app)

'''
函数模板
'''
from common.libs.UrlManager import UrlManager
app.add_template_global(UrlManager.buildStaticUrl, "buildStaticUrl")
app.add_template_global(UrlManager.buildUrl, "buildUrl")
